package com.tools.web.interceptor.auth;

import com.tools.common.object.Note;

/**
 * 加载用户认证对象的服务接口。
 * 返回的 AuthUser 对象用于做用户认证和授权
 * */
@Note("加载用户认证对象的服务接口。" +
        "返回的 AuthUser 对象用于做用户认证和授权")
public interface AuthUserService {

    @Note("根据用户 ID 加载用户、角色、权限、路由等数据，封装为 AuthUser 返回")
    AuthUser loadAuthUser(Object userId, String userType);

    @Note("若在此之前已加载出用户，那就直接使用 user 和 userId 加载其他数据组合成 AuthUser 对象返回")
    AuthUser loadAuthUser(Object user, Object userId, String userType);

    @Note("封禁用户对象，可以是软删除，也可以修改状态为禁用")
    int disabledUser(Object userId, String userType);
}
